package com.lianniu.mgr.baseService.staff.dao;

import java.util.List;

import com.lianniu.mgr.baseService.staff.model.Org2PostVo;
import com.lianniu.mgr.baseService.staff.model.ParamVo;
import com.lianniu.mgr.baseService.staff.model.Staff2PostVo;
import com.lianniu.mgr.baseService.staff.model.StaffVo;
import org.apache.ibatis.annotations.Param;

public interface IStaffMapperDao {
  /**
   * @Description:添加员工信息
   * @param staffVo
   * @return int(null)

   * @Date:2016年3月31日下午2:16:16
   * @Version 1.0.0
   */
  public int addStaff(StaffVo staffVo);
  /**
   * @Description:编辑员工信息
   * @param staffVo
   * @return int(修改记录数)

   * @Date:2016年3月31日下午2:16:48
   * @Version 1.0.0
   */
  public int editStaff(StaffVo staffVo);
  
  /**
   * 
   * @Title: getStaff 
   * @Description: 获取员工列表

   * @param staffVo
   * @return
   * @date: 2016年4月1日 上午9:38:01 
   * @return: List<StaffVo>
   */
  public List<StaffVo> getStaff(StaffVo staffVo);
  
  /**
   * 
   * @Title: getStaff2Post 
   * @Description: 更加员工获取岗位id

   * @param staffVo
   * @return
   * @date: 2016年4月1日 下午12:44:32 
   * @return: List<Staff2Post>
   */
  public List<Staff2PostVo> getStaff2Post(StaffVo staffVo);
  
  /**
   * @Description：查询员工列表
   * @Param:StaffVo
   * @Return:List<StaffVo>

   * @Date:2016-4-1 10:47:58
   */
  public List<StaffVo> getStaffListForPage(StaffVo staffVo); 
  
  /**
   * @Description：删除员工
   * @Param:modifyUser 修改人  id 删除员工id
   * @Return:删除行数

   * @Date:2016-4-1 10:49:27
   */
  public int delStaff(String modifyUser,String...id);
  
  /**
   * @Description:查询组织岗位信息
   * @return List<Org2PostVo>

   * @Date:2016年4月6日下午12:39:45
   * @Version 1.0.0
   */
  public List<Org2PostVo> getOrgPost();
  
  /**
   * @Description:根据staffId删除lianniu_staff2post表信息
   * @param staffId
   * @return

   * @Date:2016年4月6日下午12:40:08
   * @Version 1.0.0
   */
  public int delStaff2Post(String staffId);
  /**
   * @Description:根据staffId添加lianniu_staff2post表信息
   * @param list
   * @return

   * @Date:2016年4月6日下午12:40:38
   * @Version 1.0.0
   */
  public int addStaff2Post(List<Staff2PostVo> list);
  
  /**
   * @Description:根据staffId查询被选中的组织
   * @param staffId
   * @return List<String>

   * @Date:2016年4月6日下午7:42:07
   * @Version 1.0.0
   */
  public List<String> getCheckedPostByStaffId(String staffId);
  
  /**
   * @Description:检证员工编号是否存在
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistStaffNo(String staffNo);
  
  /**
   * @Description:检证员工用户名是否存在
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistLoginName(String loginName);
  
  /**
   * @Description:检证员工手机号是否存在
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistMobile(String mobile);
  
  /**
   * @Description:检证员工姓名是否存在
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistStaffName(String staffName);
  
  /**
   * @Description:检证员工邮箱是否存在
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistEmail(String email);
  
  /**
   * @Description:检证员工编号是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistStaffNoById(String staffNo,String staffId);
  
  /**
   * @Description:检证员工用户名是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistLoginNameById(String loginName,String staffId);
  
  /**
   * @Description:检证员工手机号是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistMobileById(String mobile,String staffId);
  
  /**
   * @Description:检证员工姓名是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistStaffNameById(String staffName,String staffId);
  
  /**
   * @Description:检证员工邮箱是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistEmailById(String email,String staffId);

  /**
   * @Description:员工岗位关系表新增
   * @param li
   * @return int
   * @Date:2016年10月21日上午9:55:36
   * @Version 1.0.0
   */
  public int insertStaff2Post(List<Staff2PostVo> li);

  /**
   * @Description:员工岗位关系表删除
   * @param paramVo
   * @return int
   * @Date:2016年10月21日上午9:55:56
   * @Version 1.0.0
   */
  public int delStaff2PostByParamVo(ParamVo paramVo);


  /**
   * @Description:重置密码，默认设置为1q2w3e
   * @param staffVo
   * @Date:2016年12月12日
   */
  public int resetPwdByStaffVo(StaffVo staffVo);

  /**
   * @Description：查询员工列表
   * @Param:postion
   * @Return:List<StaffVo>

   * @Date:2016-4-1 10:47:58
   */
  public List<StaffVo> getStaffByPostion(String postion);

  public List<StaffVo> getStaffByStaffId(@Param(value="staff") String staff);


  public List<StaffVo> selectStaffByPostName(@Param(value="postName") String postName);
}
